package org.shj.pattern.mediator;

/**
 * 中介者模式： 用一个中介对象来封装一系列对象的交互。中介者使各对象之间不需要显式地相互引用，从而使其耦合松散，而且可以独立地改变它们之间的交互。
 * 何时使用： 多个类相互耦合，形成了网状结构。 一般应用于一组对象以定义良好但是复杂的方式进行通信的场合，以及想定制一个分布在多个类中的行为，
 *     而又不想生成太多的子类的场合。
 * 缺点： 把对象之间的耦合的复杂性移到了，中介者中。
 * @author huangjian
 *
 */
public class Main {

	public static void main(String[] args){
		ConcreteMediator m = new ConcreteMediator();
		Colleague c1 = new ColleagueA(m);
		Colleague c2 = new ColleagueB(m);
		
		m.setColleague1(c1);
		m.setColleague2(c2);
		
		c1.send("Have lunch?");
		c2.send("No.");
	}
}
